using System.Collections.Generic;
using Plossum.CommandLine;

namespace Syno.Cmd
{
    [CommandLineManager(ApplicationName = "Syno",
            Copyright = "Copyright (C) Rolf Wessels", EnabledOptionStyles = OptionStyles.Group | OptionStyles.LongUnix
            )]
        [CommandLineOptionGroup("commands", Name = "Commands", Require = OptionGroupRequirement.AtLeastOne)]
        [CommandLineOptionGroup("options", Name = "Options")]
        public class ProgramParams
        {
            public ProgramParams()
            {
                Profile = new List<string>();
            }

            #region Commands

            [CommandLineOption(Name = "h", Aliases = "help",
                Description = "Shows this help text", GroupId = "commands")]
            public bool Help { get; set; }

            [CommandLineOption(Name = "r", Aliases = "run",
                    Description = "Runs a notification report", GroupId = "commands")]
            public bool Run { get; set; }

            #endregion


            #region Options

            [CommandLineOption(Name = "v", Aliases = "verbose",
                Description = "Produce verbose output", GroupId = "options")]
            public bool Verbose { get; set; }

            [CommandLineOption(Name = "f", 
                    Description = "Set selected file [syno.xml]" , GroupId = "options")]
            public string File { get; set; }

            [CommandLineOption(Name = "p", 
                    Description = "Set selected profile [default]", GroupId = "options")]
            public List<string> Profile { get; set; }

            #endregion

        }
}

